package thread;

/**
 * 守护线程
 * 通过调用setDaemon方法设置线程为守护线程
 * 默认创建的线程都是用户线程，用户线程是程序运行的主要线程，当用户线程运行结束，程序结束
 *
 * 区别：
 *
 */
public class DaemonThreadDemo {
    public static void main(String[] args) {
        Thread rose=new Thread(){
            public void run(){
                for (int i = 0; i < 5; i++) {
                    System.out.println(getName()+"let me go!!!");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("aaaaaaaaa");
                System.out.println("扑通");
            }
        };
        //
        Thread jack=new Thread(){
            public void run(){
                while (true){
                    System.out.println(getName()+"you jump i jump");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        };
        rose.start();
        //设置为守护线程
        jack.setDaemon(true);
        jack.start();

        //主线程不是守护线程
        while (true);
        //如果主线程不结束，守护线程也会结束
    }

}
